package com.lagou.homework.beer

/**
 * 每瓶啤酒2元，3个空酒瓶或者5个瓶盖可换1瓶啤酒。
 * 100元最多可喝多少瓶啤酒？（不允许借啤酒）
 */
object BuyBeer {
  def main(args: Array[String]): Unit = {
    val beerNum = 100 / 2
    printf("一共可以喝 %d 瓶\n", beerNum + GetNumber(beerNum, beerNum, 0))
  }

  //cap瓶盖，empty空瓶，bottle啤酒瓶
  def GetNumber(cap: Int, empty: Int, bottle: Int): Int = {
    if (empty < 3 && cap < 5) return bottle
    val emptyToBeer = empty / 3; //空瓶可换的啤酒数
    val leftoverEmpty = empty % 3; //空瓶换完剩下的空瓶数
    val capToBeer = cap / 5; //瓶盖可换的啤酒数
    val leftoverCap = cap % 5; //瓶盖换完剩下的瓶盖数
    GetNumber(emptyToBeer + capToBeer + leftoverCap,
      emptyToBeer + capToBeer + leftoverEmpty,
      emptyToBeer + capToBeer + bottle)
  }
}
